package leetcode.hot100;

@SuppressWarnings("all")
public class _11_盛水最多的容器_双指针 {

    // 给坐标点数组 [1,8,6,2,5,4,8,3,7] 在此情况下，容器能够容纳水（表示为蓝色部分）的最大值为 49
    public int maxArea(int[] height) {
        if (height == null || height.length == 0) return 0;
        int left = 0;                  //记录坐标第一根柱子的位置
        int right = height.length - 1; //记录右边第一根柱子的位置
        int maxCapacity = 0;           //保存最大的容水量
        while (left < right) {         //只要左右柱子不重合就能装水
            int high;                  //能盛水的最高水位
            if (height[left] <= height[right]) {
                high = height[left++];
            } else {
                high = height[right--];
            }
            int bottom = right - left + 1; //能盛水的水位宽度，上面代码在处理时left或right变化了1，这里加上
            maxCapacity = Math.max(maxCapacity, high * bottom);
        }
        return maxCapacity;
    }
}
